Scroller

Section: ET++ class description (n)
Updated: automatically Fri Mar 15 14:14:57 1991
Index Return to Main Contents
 

NAME

Scroller - surrounds a Clipper with ScrollBars  

DESCRIPTION

A Scroller installs a VObject, usually an instance of the class View, in a Clipper and surrounds that Clipper with ScrollBars. Scrollbars can be placed individually at each side of the Clipper. Depending on the flag eScrollHideScrolls of the instvar controls the installed ScrollBars are always visible or they are shown only when necessary.
Nothing special has to be done to put a View in a Scroller except that the View must correctly set its size with SetExtent otherwise the Scroller cannot update the size of the thumbs (the grey area inside a ScrollBar, which can be moved with the left mouse button).
Scrollers are used, for example, when the initial window layout is created:
Window *MyDocument::DoMakeWindows()
{
    View *myView = new MyView(/* ... */);
    return new Window(this, Point(400), eWinDefault,
               new Scroller(myView));
}

It is also possible to install a View directly in a Clipper or to put it into a Splitter. See class Clipper and class Splitter.


classes are never derived from Scroller.
class Scroller is often reused directly.
class Scroller contains 16 methods.

owner of class:
nobody.
baseclasses:
CompositeVObject
subclasses:
SplitScroller
flags:
CompositeVObjectFlags

 

INSTANCE VARIABLES

controls (protected ScrollDir)
specifies on which sides to place ScrollBars and whether to hide them when they are not necessary. The default is to create one ScrollBar at the right side, one at the bottom and to hide them. See also enum ScrollDir and instvar visibleControls.

ms (protected Point)
the minimum size of the installed Clipper

sb (protected ScrollBar *[4])
an array containing the four ScrollBars. sb[0] is the vertical ScrollBar at the right side, sb[1] is the horizontal ScrollBar at the bottom, sb[2] is the vertical ScrollBar at the left side and sb[3] is the horizontal ScrollBar at the top. Always all four ScrollBars are created regardless of the value of the instvar controls. But only the currently visible ScrollBars are opened and drawn.

vf (protected Clipper *)
the installed Clipper that shows the instvar vop

visibleControls (protected ScrollDir)
indicates which of the four ScrollBars are currently visible. See also instvar controls.

vop (protected VObject *)
the shown VObject. It is usually an instance of the class View.

 

INSTANCE METHOD LIST

client interface
GetBgInk
GetClipper
Scroller
SetBgInk

implementation
BubbleUpdate
Control
Draw
GetMinSize
Init
NeedControls
Open
PrintOn
ReadFrom
SetExtent
SetOrigin
ViewSizeChanged

 

CATEGORIES

VObject Composition

 

FILES

declaration:
Scroller.h

 

HISTORY

joe@csesbg.at  Wed Sep 11 12:29 1991 MET DST

man2html: unable to open or read file ../mann/Scroller::BubbleUpdate.n
man2html: unable to open or read file ../mann/Scroller::Control.n
man2html: unable to open or read file ../mann/Scroller::Draw.n
man2html: unable to open or read file ../mann/Scroller::GetBgInk.n
man2html: unable to open or read file ../mann/Scroller::GetClipper.n
man2html: unable to open or read file ../mann/Scroller::GetMinSize.n
man2html: unable to open or read file ../mann/Scroller::Init.n
man2html: unable to open or read file ../mann/Scroller::NeedControls.n
man2html: unable to open or read file ../mann/Scroller::Open.n
man2html: unable to open or read file ../mann/Scroller::PrintOn.n
man2html: unable to open or read file ../mann/Scroller::ReadFrom.n
man2html: unable to open or read file ../mann/Scroller::Scroller.n
man2html: unable to open or read file ../mann/Scroller::SetBgInk.n
man2html: unable to open or read file ../mann/Scroller::SetExtent.n
man2html: unable to open or read file ../mann/Scroller::SetOrigin.n
man2html: unable to open or read file ../mann/Scroller::ViewSizeChanged.n


 

Index

NAME
DESCRIPTION
INSTANCE VARIABLES
INSTANCE METHOD LIST
CATEGORIES
FILES
HISTORY

This document was created by man2html, using the manual pages.
Time: 00:40:24 GMT, March 30, 2022